package ym.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ym.pojo.*;

import java.util.List;

public interface PatientService {
    void add(Patient patient);

    void update(Patient patient);

    void delete(Integer id);

    Patient findById(Integer id);

    List<Patient> findAll();

    Page<Patient> search(String search, int page, int size);

    /**
     * NRS-2002评估【模拟测试版】
     *
     * @return
     */
    public String nrs2002Assessment(Integer id);

    /**
     * MUST评估【模拟测试版】
     *
     * @return
     */
    public String mustAssessment(Integer id);

    /**
     * MUST评估【外置ai版】
     *
     * @return
     */
    public void mustAssessmentWebAi(Integer patientId, String totalScore, String assessmentResult);

    /**
     * NRS-2002评估【外置ai版】
     *
     * @return
     */
    public void nrs2002AssessmentWebAi(Integer patientId, String totalScore, String assessmentResult);

    /**
     * 生成计划【模拟测试版】
     */
    public void generatePlan(Integer id);

    /**
     * 生成计划-计划【外置ai版】
     */
    public Integer generatePlanAiForNutritionPlan(NutritionPlan nutritionPlan);
    /**
     * 生成计划-膳食方案【外置ai版】
     */
    public Integer generatePlanAiForMealPlan(MealPlan mealPlan);
    /**
     * 生成计划-肠内营养方案【外置ai版】
     */
    public Integer generatePlanAiForEnteralNutritionPlan(EnteralNutritionPlan enteralNutritionPlan);
    /**
     * 生成计划-肠外营养方案【外置ai版】
     */
    public Integer generatePlanAiForParenteralNutritionPlan(ParenteralNutritionPlan parenteralNutritionPlan);

    /**
     * 根据治疗阶段查询患者数量
     */
    public int findNumberByTreatmentStage(int treatmentStage);

    /**
     * 根据住院阶段查询患者数量
     */
    public int findNumberByHospitalizationStage(int hospitalizationStage);


}
